//!----------------------------------------------------------------------------
//!<Interface> Vertex
//!----------------------------------------------------------------------------

//!<Include> IProjectVertex.sl

//!----------------------------------------------------------------------------
//!<Source> Vertex
//!----------------------------------------------------------------------------

//!<Include> ITransformState.sl

// Project vertex position
vec4 ProjectVertexPosition(vec4 v)
{
	return (ds_ModelProjection * v);
}

// Project vertex position
vec4 ProjectVertexPosition(vec3 v)
{
	return (ds_ModelProjection * vec4( v , 1.0 ) );
}

// Project vertex position
vec4 ProjectVertexPosition(vec2 v)
{
	return (ds_ModelProjection * vec4( v , 0.0, 1.0 ) );
}

// Project vertex normal
vec3 ProjectVertexNormal(vec3 n)
{
	return (ds_NormalMatrix * n);
}

//!============================================================================
//! Implementation notes
//!----------------------------------------------------------------------------
//! 
//!----------------------------------------------------------------------------